const express = require('express')
const path = require('path')
const router = require('./router')
const bodyParser = require('body-parser')
const session = require('express-session')
const app = express()

// app.use('/public/',express.static('./public/'))
// app.use('/node_modules/',express.static('./node_modules/'))

app.use('/public/',express.static(path.join(__dirname, './public/')))
app.use('/node_modules/',express.static(path.join(__dirname, './node_modules/')))

app.engine('html', require('express-art-template'))
app.set('views', path.join(__dirname, './views/'))

// 配置解析 post 表单请求体插件（ 中间件 一定要在路由挂载到 app 之前）
// parse appplication/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())

// session 中间件 配置
// 使用： 配置过后，通过 req.session 来访问和设置 session 成员
// 添加 session 数据：req.session.foo = bar
// 访问 session 数据：req.session.foo 
app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true
}))

// 把路由挂载到app中
app.use(router)

// 配置处理 404 的中间件
app.use(function (req, res) {
  res.render('404.html')
})

// 配置 全局错误处理中间件
app.use(function (err, req, res, next) {
  res.status(500).json({
    err_code: 500,
    message: err.message
  })
})

app.listen(3000, function () {
  console.log('Runing..., click http://localhost:3000 to visit')
})